Release History: QLogic qlc QLA24xx FCode for SUN SPARC and IBM
================================================================

Version 1.24 11/13/06
* Change version 1.24b3 string to the official release 1.24.
* Change max-luns=16K for qlc-mode. Limit LUN field range to 8-bits in qla-mode.

Version 1.24b3 11/13/06
* Fix report-luns buffer, add 8 bytes for # of LUNs field & fix report-luns-cmd.

Version 1.24b2 11/09/06
* Change max-luns=256 (max # of LUNs per target) to match the driver. Was 1024.
* Change execute-command to check status returned by login-device, & fail if bad
* Change selftest to use init-chip which waits for fw-ready, instead of a delay.

Version 1.24b1 11/03/06
* Execute external-LB test from selftest only if in FL-port or NL-port topology.
* Create command ext-loopback-test. Allows manual execution of External Loopback
* Change ldfcode in flash-pgm to allow flashing of 1MB multi-boot images.

Version 1.23 10/18/06
* Change version 1.23b1 string to the official release 1.23.

Version 1.23b1 10/11/06
* Add ~2 sec. delay before executing show-nport-devices in show-children.
* Added Level debugging.
* Move tools directory up one level, so we don't keep a copy in every version.

Version 1.22 10/02/06
* Change version 1.22b5 string to the official release 1.22.

Version 1.22b5 09/29/06
* Fix isp2400-probe bug on PCIe HBAs. HBA regs were not mapped when load-stub-fw
  was executed. Also, moved isp2400-probe execution to the end of ifp.fth.

Version 1.22b4 09/19/06
1 Fixed list-wwns word so set-boot-wwn will work for N-port topology .
2 Fix selftest again so connection-mode always = Auto, during the test.

Version 1.22b3 09/15/06
1 Fixed get-id-list word to work for N-port topology on the ISP2400.
1 Increase max-fab-devs to 2048.
3 Change initial value of topology to x0f. (invalid)
4 Add show-settings word to list the HBA's settings. Make version word external.
5 Fix selftest to work independent of NVRAM connection-mode setting.

Version 1.22b2 09/11/06
1 Fixed processing of get-id-for-fc4type GID_FT buffer to check for null buffer.
2 Changed names of prom output files to isp2400.sun.fc and isp2400.ibm.fc.

Version 1.22b1 08/21/06
1 Add FW initialization stub loader at probe time & in close method. This is
  done only on PCIe HBAs (i.e. Dev-ID not equal to 2422).
2 The Makefile was changed: The tokenizer directory was changed to tools and a
  local copy of cpp and makearray are kept in tools. Tokenize and fakeboot
  are no longer used, and .out files are no longer created, only raw .fc files 
  with no header. ldfcode will not work on older fcode, update with init version

Version 1.21 08/01/06
* Change version to non-beta after testing.

Version 1.21b1 07/18/06
* Change info-count from an instance value to simple value. This will limit
  the version banner to be displayed only once during the boot process.

Version 1.20 06/22/06
* Prohibit connection-mode change if DevID=54xx. Print: Model # will
  Auto-negotiate.

Version 1.19 06/14/06
*   Release. Add support for QLE210, SSDID=x132(Sun) & SSDID=x13E(Qlgc).

Version 1.19b2 06/13/06
1 Prohibit data-rate change if DevID=54xx. Print: Model # will Auto-negotiate.
2 Add get-model-prop word. For printing model # if data-rate change is rejected.

Version 1.19b1 06/09/06
1 The memory size tested in mem-test will now be cut in half on all HBAs with
  Device ID = 54xx, such as the QLE220. The word reduce-func? was created.
2 Word for reading config space regs, vid@, did@, ssvid@, & ssdid@ were created.

Version 1.18 05/24/06
* Make v1.18b2 release v1.18

Version 1.18b2 05/23/06
1 Fix problem found on Sun T2000 PCIe. pci-compat-str did not handle dev-id=5432
2 Remove class-code-string2 word. It was producing a bad string pciclass,0400.

Version 1.18b1 05/19/06
1 Add support for several HBAs including the Sun QLE220 HBA with SSDID=x14E.
2 Add restriction of qla-mode change on all SUNW type HBAs.
3 Remove extra version string display during selftest.
4 Fix read-block-ext to only use read-capacity command, not try mode-sense first
5 Add display of non-zero FCP/SCSI status during debug mode.
6 Fix initialization of port-update-occurred flag during wait for isp-fw-ready?

Version 1.17 03/31/06
1 Put in Asif's fix for retry?(scsi.fth) to check sense length before IOCB copy.
2 Make my-wwn value external for IBM users.
3 Put in Asif's fix for ibm-decode-unit, to correctly parse out WWN and LUN#
  in cases where the LUN# may or may not be specified in the path.
4 Fix IBM set-address to correctly set obp-lun-lo and opb-lun-hi.

Version 1.16b11 03/28/06
* Make qla-mode? value in qlc parent & qla-mode? word in fp child node externel.
  Before fix, would not work if fcode-debug? = false.

Version 1.16b10 03/20/06
1 Fix fcp-luns for FL-PORT. Add 2dup so WWN is on the stack for f-port-fcp-luns
2 Make qla-mode? not instance value so show-devs will work. 
3 Change fnv-access-to back (from x10 to x800)
4 Add set-timeout word back (needed for IBM). It was removed in b1.16b1

Version 1.16b9 03/08/06
* Change Firmware load-image to run faster.(very slow on serengeti)
  change read-code-segment to rd-code-seg. Change dly-val from 50 to 10.
  Move FLASH-ERR ifpcsr! to get-addr-len. Change fnv-access-to from x1000 to x10

Version 1.16b8 03/07/06
* Serengeti fix child creation. Put all if statements inside colin definitions.
* Move scsicom.fth words into scsidisk.fth

Version 1.16b7 03/03/06
* Mod child creation. Use qla-mode? flag, not the property. Remove prop qla-mode
* Change Loop init error message to print only if in debug mode.

Version 1.16b6 02/27/06
* Fix encode-unit to encode the lun target integer pair. Used in qla-mode.

Version 1.16b5 02/23/06
* Swap order of boot-wwn-hi & boot-wwn-lo in NVRAM (hi is now first)
  Always prompt for boot-target-id in set-boot-wwn.

Version 1.16b4 02/09/06
* Remove periods in display-wwn & display-inquiry,LUN. Now show-children looks 
  the same as it use to.
* Add 2-bit fcode-host field to fcode-parameter word (wd offset x56) in NVRAM.
  Value can be 00-SPARC, 01-IBM, or 10-MAC. This will effect the version string.
  The 01-IBM value should not be used. The IBM version is still a separte binary

Version 1.16b3 02/03/06
* Change Initiator test in login-device also. Test TARG-BIT of Service params. 
* Change show-login-devices & show-fabric-devices to skip display-luns if 
  display-port-db fails. Check target bit done in get-port-db. Now FL-port works

Version 1.16b2 01/31/06
* Remove all #ifdef MAC instrustions. Make SUN version the SPARC/MAC version
* Fix problem found @SUN w/6920, Change Initiator test in get-portname-db. 

Version 1.16b1 01/30/06
* Add support for Apple MAC Fcode, using #ifdefs. Make it 32-bit compatable.
* Add disk-test (read-write-read-compare) selected target with sel-dev & sel-lun
  Moved read-block-ext, timed-spin, r/w-blocks from sd node 1to parent qlc node.

Version 1.15 Beta_2 12/15/05
* Modify beacon word to flash top and bottom LEDs only!

Version 1.15 Beta_1 12/09/05
* Change node name to QLGC,qla for qla-mode on Sun platforms.
* Added boot ID NVRAM modification to the set-boot-wwn method.

Version 1.14 11/04/05
* Added support for qla-mode on Sun platforms. Added NVRAM modification words
  for Fcode parameter byte (fcode-mode) and Boot Port Name/Boot LUN. Including:
  set-fc-mode, set-boot-wwn, fc-mode@, boot-wwn@, boot-wwn!, and boot-lun@.
* Add creation of qla-mode property if the fcode-mode bit is set.
* Modify set-address and device-present? to handle #address-cells =2 in qla-mode
* Modify set-address & prepare-command to correctly handle 64-bit LUNs.
* Cleaned up code. Got rid of unneeded calls to get-id. Made all constants CAPs.
* Added login-devices word to login to all fabric devices and return #ports.
* Added display-port-db word used by list-wwns and show-children (fabric & loop)
* Modified show-fabric-devices to call login-devices and the call get-port-db

Version 1.13 10/28/05
* Asif fixed retry? in scsi.fth to check sense length before copy to IOCB.

Version 1.12 10/10/05
* Fixed issue with multiple initiators on local loop

Version 1.11 (1.10.13) 10/3/05
* Fixed Sun defect CR 6308066 (ER 43414) Boot failed from Pyramid targets
* Fixed Sun defect CR 6328443 Failed to boot from SE6920/6130 target
* Fixed Sun defect CR 6324644 (ER 43580) SE6130 LUN information is not shown correctly


 Version 1.10.11 09/28/05
* Fixed ER42627: selftest does not perfrom risc-test.
* Populate fcp-luns data struct with LUN values in little-endian byte order.

 Version 1.10.09 09/26/05
 * Fixed ER42883: Getting illegal instruction following a probe-scsi-all.
 * Fixed ER43041: device name prop creation SUNW or QLGC or fibre-channel.
 * Fixed ER42627: risc-test causes unknow error. Incuded init-chip before test.
 * Fixed ER43571: Version property now includes the model string.

 Version 1.10 09/13/05
 * Included special steps in reset-risc.

 Version 1.09 09/12/05
 * Released 1.08.06 for test.

 Version 1.08.06   09/09/05
 * Fixed Sun defect 6309765 - (ER43064 same issue) Adapter information not
   printed the second time probe-scsi-all is typed.
 * Fixed Sun defect 6308468 - boot message is not generic.
 * Fixed Sun defect 6308071 - probe-scsi-all prints incorrect message if no
   cable connects to a port.
 * Fixed ER43133 - Displays Error: Unable to get Adapter ID when executing
   probe-scsi-all.
 * Fixed ER43135 - The header info indicate ISP2422 instead of ISP2432.
 * Fixed ER42880 - Mailbox or IOCB interrupt timeout occurred.
 * Fixed ER42883 - get-portname-db failed.
 * fcp-targets and show-children would cause login into initiators, and then
   subsequent scsi cmds to logged-in initiators would fail/timeout. Checked for
   device type (target/initiator) in PRLI parameters field in response iocb
   in words get-port-db and login-device, (performed a logout in the case of
   login-device word (which is fabric topology case)) and returned
   failure to ensure that no scsi cmds would be issued to initiator devices.
 * Device name property string dependent on ISP24xx subsystem-device-id for
   SPARC platform.
 * Model property dependent on ISP24xx device-id.
 * Compatible property string prefixed with "pci" (ISP2422) or "pciex" (ISP2432).
  
 Version 1.08.05   07/29/05
* Fix bug in version-prop method for the IBM version (needed a swap).

 Version 1.08.04   07/27/05
* Change version-prop method to concatinate long-string & short-verion string
  Now the date and version number are contained in one single place!
* Make the beacon word external.
* Add get-id to init-chip to set the topology. Take get-id out of open.
* Reorganize the order of methods in ifp.fth
* Fix get-sense (retry?) to use the sense data in completion IOCB, if available.
* Modify report-luns to accept an "Illegal Request" unit check response.
* Move all SCSI related commnads to hacom.fth and rename it "scsi.fth".
* 

 Version 1.08.03   07/12/05
* Change version property string, Add date to the end.
* Put LED test "beacon" word back in. It was removed in Version 1.08b6.
* Fix login-device call in f-port-fcp-luns method (fcp-luns.fth). 
* Comment-out call to logout-device in f-port-fcp-luns. (need to stay logged in)
* Add release-history.txt file to release package.
* Include tokenizer directory in release package, change makefile to use it.

 Version 1.08.02   07/05/05
* Fix show-children hang bug when no devices attached, re-wrote
  show-fabric-devices method.
* Create common get-id method to get adapter's ID & portid, new value my-portid.
* Add 8048 Async error retry return code (x99) to the do-cur-iocb method.
* Create common method, process-async, called by do-cur-iocb and get-mail.
* Implement logout-device and logout-devices. (Was a no-op)
* Change login-device to return completion-status, clean-up process-login-err.
* Changed mailbox command names from isp- to mbc-. 
* Shortened some messages and made them common. Shortened some value names.

 Version 1.08.01   06/28/05
* Change the version string only, for release to Sun.

 Version 1.08b7   06/28/05
* Add Serial-Transmit-Parameter mailbox command, set-isp-stp, to init-image. 
* Add set-slc method to set the Serial-Link-Control parameters in NVRAM.
  This allows the operator to change the output swing and output pre-emphasis
  for 1Gb, 2Gb & 4Gb.
* Change FCode checksum to use checksum in FCode Header, we will not use our
  own checksum byte at offset 0xfffc in Flash. The check-fcode method, which
  is part of selftest, now works on a combined BIOS/FCode/EFI Flash Image.
* Add check for "ISP " signature in NVRAM method, nvr-bad?, which is called
  before setting connection-mode, data-rate and bios-compatibility-mode. If 
  the NVRAM is bad, default values will be used instead.
* Fix NVRAM checksum to be the same as Flasutil. (sum words not bytes to = zero)
* Added show-bootid & show-model methods to show the corresponding NVRAM values.
* Clean up load-image method.
* Got rid of set-adapter-loopid. No reference in NVRAM docs, and never used.
* Got rid of starting-id stuff.
* Changed makefile to not use fiximage or fill128 utility. Use dd cmd instead!

Version 1.08b6   06/20/05 
* Shorten version property for luxadm problem.
* Add selftest, including: check-nvram, check-fcode, mem-test, risc-test (isp
  online selftest) and diag-lb (internal, 10-bit, 1-bit, & external loopback)
* Fix image size to pad image to 512 byte boundary, and update PCI header value.
* Added map-dma to combined dma-alloc and dma-map-in methods. And add unmap-dma
  to combined dma-free and dma-map-out methods.
* Added init-chip method to initialize & re-load FW, equivalent to re-selecting.
* Add fiximage.c utility to calculated FCode checksum for Flash images.

Version 1.08b5   05/26/05
* Fix set-fc-address for IBM. Now "Select Boot/Install device" works!
* Fix no-data command during IOCB build in prepare-command method.
* Added sav-fc method to save a copy of the FCode to RAM at location x4030.
* Moved FCode programming methods to a separate file, flash-pgm.fth.

Version 1.08b4   05/23/05
* Fix report-luns method problem when 0 LUNs is returned.
* Add SST25LF080A flash support. Add getpid method to check PROM ID.

Version 1.08b3   05/20/05  (First delivery to Qlogic)
* Fix BIOS compatible NVRAM parameter bit bug in set-mode method.
* The show-children method is now working for loop (nl) and fabric topology,
  but n-port (point-to-point) is still not supported!

Version 1.08b2   05/19/05
* Change model = QLGC24xx, name = SUNW,qlc.
* Add Asif's multiple IOCB interrupt fix. Using rsq-iocb-valid? method.

Version 1.08b1   05/18/05
* Got manual booting on IBM working! Many changes to fcp-luns & fcp-targets.
* Fixed SUN/IBM version banner bug.
* Modified verbiage in NVRAM mod? word.

Version 1.08x   05/16/05
* Fixed Endian problem w/phandle, now booting in loop topology on the Sun.
* Added fcp-targets and fcp-luns methods for IBM platform compatibility.

Version 1.07   05/13/05
* Initial release with booting fabric device working on Sun.
* Add ldfcode utility to program FCode at the OK prompt.
* Fixed all of the NVRAM parameter set methods.
* Combined various pieces of FCode from 2312 & 24xx code bases.

